home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t5.d64 / viper.c (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  5KB  |  137 lines

  1. 100 DT=60 : DIM MA(DT) , Q(100) , I%(15)
  2. 110 I%(14)=-40 : I%(13)=40 : I%(11)=-1 : I%(7)=1
  3. 120 I%(10)=-41 : I%(6)=-39 : I%(9)=39 : I%(5)=41 : JOY=56321
  4. 130 FOR J=1TODT : READ MA(J) : NEXT
  5. 140 PRINT "[147]"CHR$(142) : C=54272 : SC=1024 : POKE 53281,2 : POKE 53280,8
  6. 150 MZ=0 : P=0 : DR=0
  7. 160 CURR=251 : SPEED=49352 : INDEX=SPEED+1 : LNGTH=INDEX+1 : RTN=LN+1
  8. 170 SID=54272 : V=SID+24 : S1=SID : S2=SID : S3=S2 : A=2 : N=2 : MM=0 : S4=SID+4
  9. 180 FOR I=0TO24 : POKE SID+I,0 : NEXT : POKE SID+1,25 : POKE SID+5,6 : POKE SID+6,0
  10. 190 POKE SID+24,15
  11. 200 GOSUB 410 : POKE SID+5,6 : POKE SPEED,19-SK
  12. 210 FOR J=1024TO1063 : POKE J+C,7 : POKE J,160 : NEXT
  13. 220 FOR J=1064TO2024 STEP 40 : POKE J+C,7 : POKE J,160 : NEXT
  14. 230 FOR J=2023TO1984 STEP -1 : POKE J+C,7 : POKE J,160 : NEXT
  15. 240 FOR J=1983TO1063 STEP -40 : POKE J+C,7 : POKE J,160 : NEXT
  16. 250 M=INT(RND(TI)*1000)+SC
  17. 260 IF PEEK(M)<>32 THEN 250
  18. 270 POKE M,42 : POKE M+C,1
  19. 280 S=INT(RND(TI)*1000)+SC
  20. 290 IF PEEK(S)<>32 THEN 280
  21. 300 POKE S,90 : POKE S+C,16*RND(TI) : IF (PEEK(56321)AND15)=15 THEN 300
  22. 310 S%=S/256 : POKE CURR,S-S%*256 : POKE CURR+1,S% : POKE INDEX,0
  23. 320 POKE LNGTH,N : SYS 49152+5 : REM MAIN LOOP : GOTO 170
  24. 330 HIT=PEEK(RTN)
  25. 340 IF HIT<>160 AND HIT<>214 THEN 360
  26. 350 S=PEEK(CU)+256*PEEK(CU+1) : POKE S,42 : POKE S+C,7 : GOTO 770
  27. 360 IF HIT<>42 THEN 320
  28. 370 POKE SID,0:POKE SID+5,9:POKE S4,128:POKE S4,129:P=P+1:N=N+2:FOR T=1TO50:NEXT
  29. 380 POKE S4,128 : POKE SID,0 : POKE SID+5,6 : POKE SID+24,0 : POKE SID+24,15
  30. 390 GOSUB 880 : POKE M,42 : POKE M+C,1 : POKE SID+24,0 : POKE SID+24,15
  31. 400 GOTO 320
  32. 410 IF TR=1 THEN PRINT "[147]" : GOTO 470
  33. 420 GOSUB 950
  34. 430 PRINT "   GET THE '*'S BUT" : PRINT "   DON'T HIT ANYTHING ELSE"
  35. 440 PRINT "   USE JOYSTICK IN CONTROL PORT ONE."
  36. 450 FOR J=1TO45:POKE SID,230:POKE S4,33:FOR T=1TO2:NEXT:POKE S4,32:POKE SID,0
  37. 460 POKE SID+5,2
  38. 470 PRINT ""TAB(11)"ENTER SKILL LEVEL:"
  39. 480 PRINT TAB(10)"[155]         11111111112" : SK=10
  40. 490 PRINT " [158]SLOW  <- [155]12345678901234567890[146] ->  [153]FAST"
  41. 500 PRINT TAB(10)"[182][182][159][182][182][156][182][182][182][182][158][182][182][129][182][182][153][182][182][154][182][182][182][182][150][182][182]" : PRINT
  42. 510 PRINT "[145]"TAB(10+SK);"^[157]";
  43. 520 J=15-(PEEK(56321)AND15):SK=SK+((JAND8)=8)*(SK<19)-((JAND4)=4)*(SK>0)
  44. 530 IF (PEEK(56321)AND16)=0 THEN 560
  45. 540 IF TI<T THEN 530
  46. 550 T=TI+5 : PRINT " " : GOTO 510
  47. 560 IF TR=1 THEN PRINT "[147]" : GOTO 610
  48. 570 PRINT "[147]"CHR$(14)" [217]OU WILL GET 2 TIMES" : PRINT " AS MANY POINTS WITH"
  49. 580 PRINT " AN [197]ASY [205]AZE.
  50. 590 [153] " (null)OU WILL GET 5 TIMES" : [153] " AS MANY POINTS WITH"
  51. 600 [153] " A LEFT$ARD (null)AZE.
  52. 610 PRINT "[155] [208]RESS [204]EFT[155] FOR [200]ARD [205]AZE"
  53. 620 PRINT " [208]RESS [210]IGHT [155]FOR [197]ASY [205]AZE"
  54. 630 PRINT " [208]RESS  [202]OYBUTTON [155]FOR NO MAZE"
  55. 640 IF PEEK(56321)<>255 THEN 640
  56. 650 MZ=0 : J=PEEK(56321) : IF (JAND16)=0 THEN PRINT "[147]"CHR$(142); : RETURN
  57. 660 IF (JAND15)=15 THEN 650
  58. 670 PRINT "[147]"CHR$(142) : IF (JAND4) THEN 720
  59. 680 I=-1 : PRINT "HARD MAZE"
  60. 690 FORJ=1TODT:POKESC+80+I*320+MA(J)+C,3:POKESC+MA(J)+80+I*320,160:NEXTJ
  61. 700 I=I+1 : IF I<2 THEN 690
  62. 710 MZ=2 : RETURN
  63. 720 IF (JAND8) THEN 570
  64. 730 I=-1 : PRINT "EASY MAZE"
  65. 740 FOR J=1TO32:POKESC+MA(J)+C+80+320*I,3:POKESC+MA(J)+80+320*I,160:NEXT
  66. 750 I=I+1 : IF I<2 THEN 740
  67. 760 MZ=2 : RETURN
  68. 770 POKESID,0:POKESID+5,15:POKES4,129:FORJ=15TO4STEP-.1:POKESID+24,J:NEXT
  69. 780 POKESID+24,15:FORT=1TO500:NEXT:POKES4,128:FORT=1TO200:NEXT:POKESID+5,6
  70. 790 IF MZ=1 THEN P=P*5
  71. 800 IF MZ=2 THEN P=P*2
  72. 810 R=P*(SK+1)
  73. 820 PRINT "[147][158] YOUR SCORE:"R
  74. 830 IF R>HS THEN HS=R
  75. 840 PRINT " [159]HIGH SCORE:"HS
  76. 850 PRINT : PRINT "PRESS [150]JOYBUTTON[146] TO PLAY AGAIN."
  77. 860 IF (PEEK(56321)AND16) THEN 860
  78. 870 GOTO 140
  79. 880 M=INT(RND(TI)*1000)+SC : MM=0
  80. 890 IF PEEK(M)<>32 THEN 880
  81. 900 RETURN
  82. 910 DATA 259,260,336,337,338,341,342,343,376,383,411,412,413,414,415,416
  83. 920 DATA 423,424,425,426,427,428,456,463,496,497,498,501,502,503,579,580
  84. 930 DATA 258,259,330,331,332,333,334,345,346,347,348,349,418,419,420,421
  85. 940 DATA 490,491,492,493,494,505,506,507,508,509,578,581
  86. 950 PRINT "[147] "CHR$(142); : FOR I=2TO39 : PRINT "[192]"; : NEXT : PRINT : PRINT ""
  87. 960 PRINT " "; : FOR I=2TO39 : PRINT "[192]"; : NEXT
  88. 970 PRINT "[164][164][164] [164] [164] [164][164][164] [164][164] [164][164][164]"
  89. 980 PRINT "   [169][146][169][169][146][169][169][146][169][169][146][169][169][146][169] [169][146][169][169][146][169]
  90. 990 [153] " TAB( WAITSTEPSTEPWAITSTEPSTEPWAITSTEPTAB(TAB(STEPWAITSTEPTAB(STEPWAITSTEP(null)(null)"
  91. 1000 [153] " TAB(TAB( TAB( TAB(TAB(  TAB(TAB( TAB(TAB( TAB(TAB(TAB(   " : [139] ZZ[178]1 [167] 1070
  92. 1010 [139] [194](900)[179][177]232 [167] [141] 1130
  93. 1020 [129] CO[178]3[164]7 : [151] 894,CO : [158] 893
  94. 1030 [129]I[178]1[164]20 : [153] ""[199](148)" CMD"[199](148)" CMD"[199](148)" CMD"[199](148)" CMD"
  95. 1040 [151] SID[170]1,CO[172]2[170]I : [151] S4,33 : [151] S4,32 : [130]
  96. 1050 [129] I[178]1[164]20 : [153] " "[199](20)" "[199](20)" "[199](20)" "[199](20)" "
  97. 1060 [151] SID[170]1,CO[172]2[170]20[171]I : [151] S4,33 : [151] S4,32 : [130] : [130]
  98. 1070 [129]I[178]1[164]10 : [153] ""[199](148)" CMD"[199](148)" CMD"[199](148)" CMD"[199](148)" CMD"
  99. 1080 [130]
  100. 1090 [151] SID[170]1,60
  101. 1100 [129] J[178]15[164]1 [169][171]1 : [151] 894,J : [151] SID,J[172]10 : [151] S4,33
  102. 1110 [158] 893 : [151] S4,32 : [151] SID[170]24,J : [130] : [151] SID[170]1,15 : [151] SID[170]24,15
  103. 1120 ZZ[178]1 : [142]
  104. 1130 [129] I[178]893[164]905 : [135] A : [151] I,A : [130]
  105. 1140 [153] "READY TO PLAY IN 5 SECONDS..."
  106. 1150 [131] 169,1,162,0,157,40,216,232
  107. 1160 [131] 224,160,208,248,96
  108. 1170 [129] I[178]49152[164]49350 : [135] A : CK[178]CK[170]A : [151] I,A : [130]
  109. 1180 [153] "                              "
  110. 1190 [139] CK[179][177]29203 [167] [153] "ERROR IN DATA STATEMENTS!" : [151] 900,0 : [128]
  111. 1200 [142]
  112. 1210 [131] 169,0,141,199,192,173,1,220
  113. 1220 [131] 41,15,170,189,183,192,240,3
  114. 1230 [131] 141,199,192,173,201,192,10,170
  115. 1240 [131] 165,251,157,205,192,165,252,157
  116. 1250 [131] 206,192,56,173,201,192,237,202
  117. 1260 [131] 192,16,3,24,105,128,10,170
  118. 1270 [131] 189,205,192,133,253,189,206,192
  119. 1280 [131] 133,254,169,32,145,253,238,201
  120. 1290 [131] 192,173,201,192,16,5,169,0
  121. 1300 [131] 141,201,192,169,230,141,0,212
  122. 1310 [131] 169,32,141,4,212,169,33,141
  123. 1320 [131] 4,212,169,214,145,251,24,165
  124. 1330 [131] 251,133,253,165,252,105,212,133
  125. 1340 [131] 254,169,5,145,253,24,173,199
  126. 1350 [131] 192,16,13,101,251,133,251,165
  127. 1360 [131] 252,233,0,133,252,76,138,192
  128. 1370 [131] 101,251,133,251,165,252,105,0
  129. 1380 [131] 133,252,24,165,251,133,253,165
  130. 1390 [131] 252,105,212,133,254,177,251,201
  131. 1400 [131] 32,208,24,169,81,145,251,169
  132. 1410 [131] 4,145,253,173,200,192,240,8
  133. 1420 [131] 162,0,134,162,197,162,208,252
  134. 1430 [131] 76,5,192,141,203,192,96,0
  135. 1440 [131] 0,0,0,0,41,217,1,0
  136. 1450 [131] 39,215,255,0,40,216,0,0
  137.